Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
La Nullable clase representa un tipo de valor al que se puede asignar null.
Un tipo es nullable si se le puede asignar un valor o el valor null, lo que significa que el tipo no tiene ningún valor. De forma predeterminada, todos los tipos de referencia, como String, admiten valores NULL, pero todos los tipos de valor, como Int32, no.
En C# y Visual Basic, se marca un tipo de valor como nullable mediante la notación ? después del tipo de valor. Por ejemplo, int? en C# o Integer? en Visual Basic declara un tipo de valor entero al que se puede asignar null.
La Nullable<T> estructura solo admite el uso de un tipo de valor como un tipo que acepta valores nulos porque los tipos de referencia son nulos por diseño.
La Nullable clase proporciona compatibilidad complementaria para la Nullable<T> estructura. La Nullable clase admite la obtención del tipo subyacente de un tipo que acepta valores NULL y las operaciones de comparación e igualdad en pares de tipos que aceptan valores NULL cuyo tipo de valor subyacente no admite operaciones genéricas de comparación e igualdad.
Propiedades fundamentales
Los dos miembros fundamentales de la Nullable<T> estructura son las HasValue propiedades y Value . Si la HasValue propiedad de un Nullable<T> objeto es true, se puede tener acceso al valor del objeto con la Value propiedad . Si la HasValue propiedad es false, el valor del objeto no está definido y un intento de obtener acceso a la propiedad Value produce una InvalidOperationException excepción.
Boxing y unboxing
Cuando se encajona un tipo anulable, Common Language Runtime encajona automáticamente el valor subyacente del objeto Nullable<T>, no del propio objeto Nullable<T>. Es decir, si la propiedad HasValue es true, el contenido de la propiedad Value está boxed. Cuando el valor subyacente de un tipo anulable está desempaquetado, el common language runtime crea una nueva Nullable<T> estructura inicializada con el valor subyacente.
Si la HasValue propiedad de un tipo que acepta valores null es false, el resultado de una operación de boxing es null. Por lo tanto, si se pasa un tipo de valor nulo encapsulado a un método que espera un argumento de objeto, ese método debe estar preparado para manejar el caso en que el argumento sea null. Cuando null está desencapsulado en un tipo que acepta valores NULL, Common Language Runtime crea una nueva estructura Nullable<T> e inicializa su propiedad HasValue a false.
Componentes de Windows Runtime
Puede incluir un tipo Nullable<T> como miembro de una estructura exportada en una biblioteca WinMD.